home *** CD-ROM | disk | FTP | other *** search
/ Aminet 41 / Aminet 41 (2001)(Schatztruhe)[!][Feb 2001].iso / Aminet / comm / misc / MPackMUI.lha / MPackMUI / Source / MPackMUI.C < prev    next >
Encoding:
C/C++ Source or Header  |  2000-08-25  |  2.7 KB  |  125 lines

  1. // --------------------------------------------------------------------------------------------------------------
  2. //
  3. //   MPackMUI V1.01 Main Module
  4. //
  5. // --------------------------------------------------------------------------------------------------------------
  6.  
  7. #include "MPackMUI.h"
  8.  
  9. // --------------------------------------------------------------------------------------------------------------
  10.  
  11. int main(int ac, char *av[])
  12. {
  13.     // Open any required libraries
  14.  
  15.     OpenLibraries();
  16.  
  17.     // Open MIME preferences or use defaults
  18.  
  19.     OpenPrefs("ENV:MPackMUI.Prefs");
  20.  
  21.     // Create the GUI
  22.  
  23.     CreateGUI();
  24.  
  25.     // Enter IDCMP loop
  26.  
  27.     HandleIDCMP();
  28.  
  29.     // Free all system resources
  30.  
  31.     CleanUp();
  32. } /* main() */
  33.  
  34. // --------------------------------------------------------------------------------------------------------------
  35.  
  36. void wbmain(struct WBStartup *wbstartup)
  37. {
  38.     // Program run from WB, just call main()
  39.  
  40.     main(0, (char **)wbstartup);
  41. } /* wbmain() */
  42.  
  43. // --------------------------------------------------------------------------------------------------------------
  44.  
  45. void OpenLibraries()
  46. {
  47.     // Open any required libraries
  48.  
  49.     if (!(MUIMasterBase = OpenLibrary("muimaster.library", MUIMASTER_VMIN)))
  50.     {
  51.         DoEasyReq("Couldn't open muimaster.library");
  52.         CleanUp();
  53.     } /* if */
  54. } /* OpenLibraries() */
  55.  
  56. // --------------------------------------------------------------------------------------------------------------
  57.  
  58. void HandleIDCMP()
  59. {
  60.     ULONG sigs = 0;
  61.  
  62.     // Enter IDCMP loop
  63.  
  64.     while (Running)
  65.     {
  66.         switch(DoMethod(App, MUIM_Application_NewInput, &sigs))
  67.         {
  68.             case MUIV_Application_ReturnID_Quit:
  69.  
  70.                 Running = FALSE;
  71.  
  72.                 break;
  73.  
  74.         } /* switch */
  75.  
  76.         if (sigs)
  77.         {
  78.             sigs = Wait(sigs | SIGBREAKF_CTRL_C);
  79.  
  80.             if (sigs & SIGBREAKF_CTRL_C)
  81.             {
  82.                 break;
  83.             } /* if */
  84.         } /* if */
  85.     } /* while */
  86. } /* HandleIDCMP() */
  87.  
  88. // --------------------------------------------------------------------------------------------------------------
  89.  
  90. void CleanUp()
  91. {
  92.     UWORD loop;
  93.  
  94.     // Free all system resources
  95.  
  96.     if (Windows[WID_MAIN])
  97.         set(Windows[WID_MAIN], MUIA_Window_Open, FALSE);
  98.     if (App)
  99.         DisposeObject(App);
  100.  
  101.     // Free MIME types list
  102.  
  103.     FreeList(&MIMEList);
  104.  
  105.     // Free MIME types array
  106.  
  107.     loop = 0;
  108.  
  109.     while (MIMETypes[loop])
  110.     {
  111.         FreeMem(MIMETypes[loop], 256);
  112.  
  113.         loop++;
  114.     } /* while */
  115.  
  116.     if (MUIMasterBase)
  117.         CloseLibrary(MUIMasterBase);
  118.  
  119.     exit(0);
  120. } /* CleanUp() */
  121.  
  122. // --------------------------------------------------------------------------------------------------------------
  123.  
  124. // End Of Text
  125.